// 实现一个中间件来判断用户权限
class AuthMiddleware {
  // 需要用户登录
  async userPermission(req, res, next) {
    //先判断用户session
    if (!req.session || !req.session.user || !req.session.user.id) {
      return res.redirect("/login")
    }
    let hasPower = false
    //userMenu指当前用户拥有的菜单集合，请自行db查询
    userMenu.forEach((el) => {
      if (el.page_url == req.route.path) {
        hasPower = true
      }
    })
    if (!hasPower) {
      if (req.xhr) {
        return res.json({
          state: false,
          msg: "抱歉，您无此权限！请联系管理员",
        })
      }
      return res.send("抱歉，您无此权限！请联系管理员")
    }
    next()
  }
}

module.exports = new AuthMiddleware()

// 然后在每次请求的路由中，先判断下用户是否已登录，然后再执行相应controller
// const auth = require('./middleware'),
// router.get('/main', auth.userPermission, otherRoute);
